#include <stdio.h>
#include <pthread.h>
#include <unistd.h>

// 线程任务函数
void *func(void *arg)
{
	int j=0;
	while(j++<5)
	{
		printf("j=%d\n", j);
		sleep(1);
	}
	// 子线程退出，发送退出值
	char arr[] = {"hello"};
	pthread_exit(arr); // arr是栈空间数据，函数结束时，会释放栈空间，所以不能作为返回值
}

int main(int argc, char const *argv[])
{
	// 创建线程
	pthread_t tid;
	pthread_create(&tid, NULL, func, NULL);

	int i=0;
	while(i<3)
	{
		printf("i=%d\n", i++);
		sleep(1);
	}

	printf("正在等待子线程结束\n");
	char *str = NULL;
	// 等待子线程结束，获得子线程的退出值
	pthread_join(tid, (void **)&str);
	printf("子线程结束，获得的退出值=%s\n", str);

	return 0;
}
